Traditional software mechanisms for caching tabular data in memory typically store the tabular data in a two-dimensional array. In particular, a collection of two-dimensional arrays is frequently utilized to store a portion of the rows and columns of the tabular data in memory. In such an implementation, a page might contain one or more two-dimensional arrays. A page cache is utilized to store a collection of pages. This process is commonly referred to as tabular page caching.
Tabular page caching suffers from a number of serious drawbacks, especially when utilized in conjunction with tabular data that has millions, hundreds of millions, or even billions of rows. For instance, traditional tabular page caching implementations require the conversion of all columns in a cached two-dimensional array into a common data type prior to storage in the cache since data of different types cannot be stored in a single two-dimensional array. The data stored in the cache must also be converted back to its original data type when the data is retrieved from the cache. The data type conversion of all of the columns in a very large tabular data set in this manner might significantly impact performance. Performance might also be degraded in previous implementations when columns are re-ordered by a user.
It is with respect to these and other considerations that the disclosure made herein is presented.